# 导入时间模块用于计算时间
# 导入抽象基类模块以定义抽象方法
import time
from abc import abstractmethod, ABC

# 定义一个模板类，用于定义执行任务和计算时间的基本流程
class Template(ABC):
    # 定义一个抽象方法，要求子类实现具体任务
    @abstractmethod
    def job(self):
        pass

    # 计算并打印任务执行时间的方法
    def cal_time(self):
        # 得到开始时间
        start = time.time() * 1000
        self.job()
        # 得到结束时间，并计算任务执行时间
        end = time.time()
        print("任务执行时间：", end - start)

# 定义AA类，继承自Template类，实现具体任务
class AA(Template):
    def job(self):
        # 进行特定计算任务
        num = 0
        for i in range(1, 1000):
            num -= i

# 定义BB类，同样继承自Template类，实现具体任务
class BB(Template):
    def job(self):
        # 进行特定计算任务
        num = 0
        for i in range(1, 1000):
            num -= i

# 程序入口
if __name__ == '__main__':
    # 实例化AA类和BB类，并计算各自的任务执行时间
    a = AA()
    a.cal_time()
    b = BB()
    b.cal_time()
